{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:07:51.949081Z",
     "start_time": "2018-12-14T13:07:51.615508Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-02-11 00:00:00,2319.43\r\n",
      "2018-02-11 00:05:00,2300.97\r\n",
      "2018-02-11 00:10:00,2298.15\r\n",
      "2018-02-11 00:15:00,2267.14\r\n",
      "2018-02-11 00:20:00,2257.94\r\n",
      "2018-02-11 00:25:00,2255.16\r\n",
      "2018-02-11 00:30:00,2227.82\r\n",
      "2018-02-11 00:35:00,2215.73\r\n",
      "2018-02-11 00:40:00,2202.94\r\n",
      "2018-02-11 00:45:00,2192.79\r\n"
     ]
    }
   ],
   "source": [
    "!head monthdata.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:08:09.893472Z",
     "start_time": "2018-12-14T13:08:09.722180Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-01-12 23:10:00,1979.1\r\n",
      "2018-01-12 23:15:00,1933.21\r\n",
      "2018-01-12 23:20:00,1936.22\r\n",
      "2018-01-12 23:25:00,1913.13\r\n",
      "2018-01-12 23:30:00,1892.44\r\n",
      "2018-01-12 23:35:00,1865.02\r\n",
      "2018-01-12 23:40:00,1832.58\r\n",
      "2018-01-12 23:45:00,1816.05\r\n",
      "2018-01-12 23:50:00,1778.73\r\n",
      "2018-01-12 23:55:00,1776.77\r\n"
     ]
    }
   ],
   "source": [
    "!tail monthdata.csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:09:40.071700Z",
     "start_time": "2018-12-14T13:09:40.065875Z"
    }
   },
   "outputs": [],
   "source": [
    "#!/home/eee/ug/15084015/miniconda3/envs/TF/bin/python\n",
    "\"\"\"\n",
    "The script is to run half an hour after midnight. Scrap last day's data and update monthsdata.csv\n",
    "\"\"\"\n",
    "import os\n",
    "import logging\n",
    "from math import sqrt\n",
    "from subprocess import call\n",
    "from datetime import datetime, timedelta\n",
    "import csv\n",
    "import requests\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import statsmodels.api as sm\n",
    "from bs4 import BeautifulSoup\n",
    "from statsmodels.tsa.arima_model import ARIMAResults\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:09:51.592823Z",
     "start_time": "2018-12-14T13:09:51.587412Z"
    }
   },
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "# to store the log in a file called 'arima_log.txt'\n",
    "logging.basicConfig(\n",
    "    level=logging.INFO,\n",
    "    format=\"%(asctime)s %(message)s\",\n",
    ")\n",
    "logger = logging.getLogger()\n",
    "console = logging.StreamHandler()\n",
    "logger.addHandler(console)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:37:47.213563Z",
     "start_time": "2018-12-14T13:37:47.209586Z"
    }
   },
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "def get_data():\n",
    "    return pd.read_csv(\n",
    "        \"monthdata.csv\",\n",
    "        header=None,\n",
    "        index_col=[\"datetime\"],\n",
    "        names=[\"datetime\", \"load\"],\n",
    "        parse_dates=[\"datetime\"],\n",
    "        infer_datetime_format=True,\n",
    "    )\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:37:49.426289Z",
     "start_time": "2018-12-14T13:37:49.245295Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Yesterday\"s load already scrapped!\n",
      "Yesterday\"s load already scrapped!\n"
     ]
    }
   ],
   "source": [
    "if os.path.exists(\"monthdata.csv\"):\n",
    "    data = get_data()\n",
    "    # import pdb; pdb.set_trace()\n",
    "    if (datetime.today() - timedelta(1)).date().strftime('%Y-%m-%d') != str(data.index.date[-1]):  # yesterdays data not present, scrap it\n",
    "        # only need to scrap for yesterday's data and append it to already existing file\n",
    "        yesterday = datetime.today() - timedelta(1)\n",
    "        yesterday = yesterday.strftime(\"%d/%m/%Y\")\n",
    "        get_load_data(yesterday)\n",
    "        # re read updated monthdata.csv and clip data in monthdata.csv to last 30 days only\n",
    "        data = get_data()\n",
    "        day_to_clip_from = datetime.today() - timedelta(30)\n",
    "        logger.info(\"Clipping data from \" + day_to_clip_from.strftime(\"%d/%m/%Y\"))\n",
    "        data = data[day_to_clip_from.strftime(\"%d/%m/%Y\"):]\n",
    "        data.to_csv(\n",
    "            \"monthdata.csv\", header=False\n",
    "        )  # IMP: don't add any header to the monthdata.csv\n",
    "    else:\n",
    "        logger.info('Yesterday\"s load already scrapped!')\n",
    "else:  # scrap for last 30 days, prepare monthdata.csv\n",
    "    for i in range(31, 0, -1):\n",
    "        yesterday = datetime.today() - timedelta(i)\n",
    "        yesterday = yesterday.strftime(\"%d/%m/%Y\")\n",
    "        get_load_data(yesterday)\n",
    "    data = get_data()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:37:48.349792Z",
     "start_time": "2018-12-14T13:37:48.336055Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime.date(2018, 12, 13)"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.index.date[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:35:34.006575Z",
     "start_time": "2018-12-14T13:35:34.000720Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime.date(2018, 12, 13)"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(datetime.today() - timedelta(1)).date()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:35:57.498170Z",
     "start_time": "2018-12-14T13:35:57.490046Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(datetime.today() - timedelta(1)).date() in data.index.date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:36:10.455516Z",
     "start_time": "2018-12-14T13:36:10.448315Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(datetime.today() - timedelta(1)).date().strftime('%Y-%m-%d') == str(data.index.date[-1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:32:48.655082Z",
     "start_time": "2018-12-14T13:32:48.553232Z"
    }
   },
   "outputs": [],
   "source": [
    "data = get_data()\n",
    "\n",
    "# exit()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:32:50.625507Z",
     "start_time": "2018-12-14T13:32:50.615131Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>load</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-13 00:00:00</th>\n",
       "      <td>1905.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-13 00:05:00</th>\n",
       "      <td>1886.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-13 00:10:00</th>\n",
       "      <td>1844.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-13 00:15:00</th>\n",
       "      <td>1872.64</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-13 00:20:00</th>\n",
       "      <td>1820.45</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        load\n",
       "datetime                    \n",
       "2018-11-13 00:00:00  1905.57\n",
       "2018-11-13 00:05:00  1886.34\n",
       "2018-11-13 00:10:00  1844.60\n",
       "2018-11-13 00:15:00  1872.64\n",
       "2018-11-13 00:20:00  1820.45"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:32:55.667764Z",
     "start_time": "2018-12-14T13:32:55.658172Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>load</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-12-13 23:35:00</th>\n",
       "      <td>1953.89</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-13 23:40:00</th>\n",
       "      <td>1928.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-13 23:45:00</th>\n",
       "      <td>1918.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-13 23:50:00</th>\n",
       "      <td>1882.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-12-13 23:55:00</th>\n",
       "      <td>1862.48</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        load\n",
       "datetime                    \n",
       "2018-12-13 23:35:00  1953.89\n",
       "2018-12-13 23:40:00  1928.33\n",
       "2018-12-13 23:45:00  1918.94\n",
       "2018-12-13 23:50:00  1882.72\n",
       "2018-12-13 23:55:00  1862.48"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:11:38.974223Z",
     "start_time": "2018-12-14T13:11:38.953798Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 9792 entries, 2018-02-11 00:00:00 to 2018-01-12 23:55:00\n",
      "Data columns (total 1 columns):\n",
      "load    9792 non-null float64\n",
      "dtypes: float64(1)\n",
      "memory usage: 153.0 KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:18:40.136376Z",
     "start_time": "2018-12-14T13:18:40.133364Z"
    }
   },
   "outputs": [],
   "source": [
    "# data[list(set(data.index.date))[0].strftime(\"%d/%m/%Y\")]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:26:48.019373Z",
     "start_time": "2018-12-14T13:26:48.007842Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "1440/288"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:26:31.413247Z",
     "start_time": "2018-12-14T13:26:31.407736Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1440, 1)"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['2018-01-12']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:29:48.992204Z",
     "start_time": "2018-12-14T13:29:48.898948Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>load</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:00:00</th>\n",
       "      <td>1854.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:05:00</th>\n",
       "      <td>1843.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:10:00</th>\n",
       "      <td>1808.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:15:00</th>\n",
       "      <td>1814.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:20:00</th>\n",
       "      <td>1803.68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:25:00</th>\n",
       "      <td>1802.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:30:00</th>\n",
       "      <td>1778.68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:35:00</th>\n",
       "      <td>1746.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:40:00</th>\n",
       "      <td>1754.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:45:00</th>\n",
       "      <td>1739.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:50:00</th>\n",
       "      <td>1714.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 00:55:00</th>\n",
       "      <td>1717.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:00:00</th>\n",
       "      <td>1697.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:05:00</th>\n",
       "      <td>1682.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:10:00</th>\n",
       "      <td>1665.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:15:00</th>\n",
       "      <td>1667.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:20:00</th>\n",
       "      <td>1655.54</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:25:00</th>\n",
       "      <td>1652.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:30:00</th>\n",
       "      <td>1650.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:35:00</th>\n",
       "      <td>1641.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:40:00</th>\n",
       "      <td>1648.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:45:00</th>\n",
       "      <td>1634.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:50:00</th>\n",
       "      <td>1628.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 01:55:00</th>\n",
       "      <td>1623.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 02:00:00</th>\n",
       "      <td>1621.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 02:05:00</th>\n",
       "      <td>1598.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 02:10:00</th>\n",
       "      <td>1600.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 02:15:00</th>\n",
       "      <td>1601.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 02:20:00</th>\n",
       "      <td>1596.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 02:25:00</th>\n",
       "      <td>1591.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:30:00</th>\n",
       "      <td>2378.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:35:00</th>\n",
       "      <td>2352.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:40:00</th>\n",
       "      <td>2342.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:45:00</th>\n",
       "      <td>2296.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:50:00</th>\n",
       "      <td>2338.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:55:00</th>\n",
       "      <td>2083.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:00:00</th>\n",
       "      <td>2270.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:05:00</th>\n",
       "      <td>2240.89</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:10:00</th>\n",
       "      <td>2241.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:15:00</th>\n",
       "      <td>2176.28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:20:00</th>\n",
       "      <td>2208.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:25:00</th>\n",
       "      <td>2158.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:30:00</th>\n",
       "      <td>2132.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:35:00</th>\n",
       "      <td>2118.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:40:00</th>\n",
       "      <td>2097.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:45:00</th>\n",
       "      <td>2064.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:50:00</th>\n",
       "      <td>2041.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:55:00</th>\n",
       "      <td>2039.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:00:00</th>\n",
       "      <td>2026.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:05:00</th>\n",
       "      <td>1957.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:10:00</th>\n",
       "      <td>1979.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:15:00</th>\n",
       "      <td>1933.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:20:00</th>\n",
       "      <td>1936.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:25:00</th>\n",
       "      <td>1913.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:30:00</th>\n",
       "      <td>1892.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:35:00</th>\n",
       "      <td>1865.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:40:00</th>\n",
       "      <td>1832.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:45:00</th>\n",
       "      <td>1816.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:50:00</th>\n",
       "      <td>1778.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:55:00</th>\n",
       "      <td>1776.77</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1440 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                        load\n",
       "datetime                    \n",
       "2018-01-12 00:00:00  1854.58\n",
       "2018-01-12 00:05:00  1843.90\n",
       "2018-01-12 00:10:00  1808.62\n",
       "2018-01-12 00:15:00  1814.96\n",
       "2018-01-12 00:20:00  1803.68\n",
       "2018-01-12 00:25:00  1802.24\n",
       "2018-01-12 00:30:00  1778.68\n",
       "2018-01-12 00:35:00  1746.63\n",
       "2018-01-12 00:40:00  1754.35\n",
       "2018-01-12 00:45:00  1739.21\n",
       "2018-01-12 00:50:00  1714.98\n",
       "2018-01-12 00:55:00  1717.57\n",
       "2018-01-12 01:00:00  1697.99\n",
       "2018-01-12 01:05:00  1682.51\n",
       "2018-01-12 01:10:00  1665.43\n",
       "2018-01-12 01:15:00  1667.19\n",
       "2018-01-12 01:20:00  1655.54\n",
       "2018-01-12 01:25:00  1652.77\n",
       "2018-01-12 01:30:00  1650.59\n",
       "2018-01-12 01:35:00  1641.38\n",
       "2018-01-12 01:40:00  1648.52\n",
       "2018-01-12 01:45:00  1634.36\n",
       "2018-01-12 01:50:00  1628.73\n",
       "2018-01-12 01:55:00  1623.99\n",
       "2018-01-12 02:00:00  1621.12\n",
       "2018-01-12 02:05:00  1598.95\n",
       "2018-01-12 02:10:00  1600.91\n",
       "2018-01-12 02:15:00  1601.47\n",
       "2018-01-12 02:20:00  1596.87\n",
       "2018-01-12 02:25:00  1591.51\n",
       "...                      ...\n",
       "2018-01-12 21:30:00  2378.99\n",
       "2018-01-12 21:35:00  2352.12\n",
       "2018-01-12 21:40:00  2342.45\n",
       "2018-01-12 21:45:00  2296.93\n",
       "2018-01-12 21:50:00  2338.91\n",
       "2018-01-12 21:55:00  2083.36\n",
       "2018-01-12 22:00:00  2270.47\n",
       "2018-01-12 22:05:00  2240.89\n",
       "2018-01-12 22:10:00  2241.48\n",
       "2018-01-12 22:15:00  2176.28\n",
       "2018-01-12 22:20:00  2208.15\n",
       "2018-01-12 22:25:00  2158.08\n",
       "2018-01-12 22:30:00  2132.22\n",
       "2018-01-12 22:35:00  2118.91\n",
       "2018-01-12 22:40:00  2097.88\n",
       "2018-01-12 22:45:00  2064.22\n",
       "2018-01-12 22:50:00  2041.43\n",
       "2018-01-12 22:55:00  2039.33\n",
       "2018-01-12 23:00:00  2026.21\n",
       "2018-01-12 23:05:00  1957.59\n",
       "2018-01-12 23:10:00  1979.10\n",
       "2018-01-12 23:15:00  1933.21\n",
       "2018-01-12 23:20:00  1936.22\n",
       "2018-01-12 23:25:00  1913.13\n",
       "2018-01-12 23:30:00  1892.44\n",
       "2018-01-12 23:35:00  1865.02\n",
       "2018-01-12 23:40:00  1832.58\n",
       "2018-01-12 23:45:00  1816.05\n",
       "2018-01-12 23:50:00  1778.73\n",
       "2018-01-12 23:55:00  1776.77\n",
       "\n",
       "[1440 rows x 1 columns]"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data['01/12/2018']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:28:51.956178Z",
     "start_time": "2018-12-14T13:28:51.806691Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018-01-12\n",
      "cannot reindex a non-unique index with a method or limit\n",
      "29\n"
     ]
    }
   ],
   "source": [
    "for idx, i in enumerate(sorted(set(data.index.date))):\n",
    "    date = str(i)\n",
    "    try:\n",
    "    #     date = i.strftime(\"%d/%m/%Y\")\n",
    "        \n",
    "#         data.loc[date] = data[date].asfreq(freq=\"30Min\", method=\"bfill\")\n",
    "        data[date].asfreq(freq=\"30Min\", method=\"bfill\")\n",
    "    except Exception as e:\n",
    "        print(date)\n",
    "\n",
    "        print(e)\n",
    "print(idx)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:20:20.243130Z",
     "start_time": "2018-12-14T13:20:20.229125Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>load</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:00:00</th>\n",
       "      <td>2319.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:05:00</th>\n",
       "      <td>2300.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:10:00</th>\n",
       "      <td>2298.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:15:00</th>\n",
       "      <td>2267.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:20:00</th>\n",
       "      <td>2257.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:25:00</th>\n",
       "      <td>2255.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:30:00</th>\n",
       "      <td>2227.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:35:00</th>\n",
       "      <td>2215.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:40:00</th>\n",
       "      <td>2202.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:45:00</th>\n",
       "      <td>2192.79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:50:00</th>\n",
       "      <td>2185.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 00:55:00</th>\n",
       "      <td>2181.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:00:00</th>\n",
       "      <td>2159.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:05:00</th>\n",
       "      <td>2142.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:10:00</th>\n",
       "      <td>2134.94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:15:00</th>\n",
       "      <td>2107.87</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:20:00</th>\n",
       "      <td>2095.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:25:00</th>\n",
       "      <td>2107.86</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:30:00</th>\n",
       "      <td>2100.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:35:00</th>\n",
       "      <td>2105.26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:40:00</th>\n",
       "      <td>2099.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:45:00</th>\n",
       "      <td>2090.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:50:00</th>\n",
       "      <td>2095.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 01:55:00</th>\n",
       "      <td>2067.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 02:00:00</th>\n",
       "      <td>2070.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 02:05:00</th>\n",
       "      <td>2062.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 02:10:00</th>\n",
       "      <td>2052.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 02:15:00</th>\n",
       "      <td>2047.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 02:20:00</th>\n",
       "      <td>2040.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-02-11 02:25:00</th>\n",
       "      <td>2034.11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:30:00</th>\n",
       "      <td>2378.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:35:00</th>\n",
       "      <td>2352.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:40:00</th>\n",
       "      <td>2342.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:45:00</th>\n",
       "      <td>2296.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:50:00</th>\n",
       "      <td>2338.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 21:55:00</th>\n",
       "      <td>2083.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:00:00</th>\n",
       "      <td>2270.47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:05:00</th>\n",
       "      <td>2240.89</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:10:00</th>\n",
       "      <td>2241.48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:15:00</th>\n",
       "      <td>2176.28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:20:00</th>\n",
       "      <td>2208.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:25:00</th>\n",
       "      <td>2158.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:30:00</th>\n",
       "      <td>2132.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:35:00</th>\n",
       "      <td>2118.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:40:00</th>\n",
       "      <td>2097.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:45:00</th>\n",
       "      <td>2064.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:50:00</th>\n",
       "      <td>2041.43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 22:55:00</th>\n",
       "      <td>2039.33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:00:00</th>\n",
       "      <td>2026.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:05:00</th>\n",
       "      <td>1957.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:10:00</th>\n",
       "      <td>1979.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:15:00</th>\n",
       "      <td>1933.21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:20:00</th>\n",
       "      <td>1936.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:25:00</th>\n",
       "      <td>1913.13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:30:00</th>\n",
       "      <td>1892.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:35:00</th>\n",
       "      <td>1865.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:40:00</th>\n",
       "      <td>1832.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:45:00</th>\n",
       "      <td>1816.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:50:00</th>\n",
       "      <td>1778.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-01-12 23:55:00</th>\n",
       "      <td>1776.77</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>9792 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                        load\n",
       "datetime                    \n",
       "2018-02-11 00:00:00  2319.43\n",
       "2018-02-11 00:05:00  2300.97\n",
       "2018-02-11 00:10:00  2298.15\n",
       "2018-02-11 00:15:00  2267.14\n",
       "2018-02-11 00:20:00  2257.94\n",
       "2018-02-11 00:25:00  2255.16\n",
       "2018-02-11 00:30:00  2227.82\n",
       "2018-02-11 00:35:00  2215.73\n",
       "2018-02-11 00:40:00  2202.94\n",
       "2018-02-11 00:45:00  2192.79\n",
       "2018-02-11 00:50:00  2185.97\n",
       "2018-02-11 00:55:00  2181.27\n",
       "2018-02-11 01:00:00  2159.05\n",
       "2018-02-11 01:05:00  2142.70\n",
       "2018-02-11 01:10:00  2134.94\n",
       "2018-02-11 01:15:00  2107.87\n",
       "2018-02-11 01:20:00  2095.35\n",
       "2018-02-11 01:25:00  2107.86\n",
       "2018-02-11 01:30:00  2100.44\n",
       "2018-02-11 01:35:00  2105.26\n",
       "2018-02-11 01:40:00  2099.38\n",
       "2018-02-11 01:45:00  2090.41\n",
       "2018-02-11 01:50:00  2095.60\n",
       "2018-02-11 01:55:00  2067.47\n",
       "2018-02-11 02:00:00  2070.98\n",
       "2018-02-11 02:05:00  2062.04\n",
       "2018-02-11 02:10:00  2052.02\n",
       "2018-02-11 02:15:00  2047.31\n",
       "2018-02-11 02:20:00  2040.24\n",
       "2018-02-11 02:25:00  2034.11\n",
       "...                      ...\n",
       "2018-01-12 21:30:00  2378.99\n",
       "2018-01-12 21:35:00  2352.12\n",
       "2018-01-12 21:40:00  2342.45\n",
       "2018-01-12 21:45:00  2296.93\n",
       "2018-01-12 21:50:00  2338.91\n",
       "2018-01-12 21:55:00  2083.36\n",
       "2018-01-12 22:00:00  2270.47\n",
       "2018-01-12 22:05:00  2240.89\n",
       "2018-01-12 22:10:00  2241.48\n",
       "2018-01-12 22:15:00  2176.28\n",
       "2018-01-12 22:20:00  2208.15\n",
       "2018-01-12 22:25:00  2158.08\n",
       "2018-01-12 22:30:00  2132.22\n",
       "2018-01-12 22:35:00  2118.91\n",
       "2018-01-12 22:40:00  2097.88\n",
       "2018-01-12 22:45:00  2064.22\n",
       "2018-01-12 22:50:00  2041.43\n",
       "2018-01-12 22:55:00  2039.33\n",
       "2018-01-12 23:00:00  2026.21\n",
       "2018-01-12 23:05:00  1957.59\n",
       "2018-01-12 23:10:00  1979.10\n",
       "2018-01-12 23:15:00  1933.21\n",
       "2018-01-12 23:20:00  1936.22\n",
       "2018-01-12 23:25:00  1913.13\n",
       "2018-01-12 23:30:00  1892.44\n",
       "2018-01-12 23:35:00  1865.02\n",
       "2018-01-12 23:40:00  1832.58\n",
       "2018-01-12 23:45:00  1816.05\n",
       "2018-01-12 23:50:00  1778.73\n",
       "2018-01-12 23:55:00  1776.77\n",
       "\n",
       "[9792 rows x 1 columns]"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:19:30.038413Z",
     "start_time": "2018-12-14T13:19:30.029158Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>load</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>datetime</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [load]\n",
       "Index: []"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "data.asfreq(freq=\"30Min\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:11:45.770193Z",
     "start_time": "2018-12-14T13:11:45.766034Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "34.0"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape[0]/288"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-12-14T13:12:29.822677Z",
     "start_time": "2018-12-14T13:12:29.782061Z"
    }
   },
   "outputs": [
    {
     "ename": "ValueError",
     "evalue": "cannot reindex a non-unique index with a method or limit",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-58-7f28532aba94>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masfreq\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfreq\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"30Min\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"bfill\"\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# sample the data in hourly manner\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36masfreq\u001b[0;34m(self, freq, method, how, normalize, fill_value)\u001b[0m\n\u001b[1;32m   6762\u001b[0m         \u001b[0;32mfrom\u001b[0m \u001b[0mpandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresample\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0masfreq\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6763\u001b[0m         return asfreq(self, freq, method=method, how=how, normalize=normalize,\n\u001b[0;32m-> 6764\u001b[0;31m                       fill_value=fill_value)\n\u001b[0m\u001b[1;32m   6765\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   6766\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mat_time\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0masof\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/core/resample.py\u001b[0m in \u001b[0;36masfreq\u001b[0;34m(obj, freq, method, how, normalize, fill_value)\u001b[0m\n\u001b[1;32m   1589\u001b[0m         \u001b[0mdti\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdate_range\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfreq\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfreq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1590\u001b[0m         \u001b[0mdti\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1591\u001b[0;31m         \u001b[0mnew_obj\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdti\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfill_value\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1592\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mnormalize\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1593\u001b[0m             \u001b[0mnew_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnew_obj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormalize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/util/_decorators.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m    185\u001b[0m         \u001b[0;34m@\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    186\u001b[0m         \u001b[0;32mdef\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 187\u001b[0;31m             \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    188\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    189\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mPY2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36mreindex\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   3564\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'axis'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3565\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'labels'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3566\u001b[0;31m         \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreindex\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3567\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3568\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0mAppender\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_shared_docs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'reindex_axis'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0m_shared_doc_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mreindex\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m   3687\u001b[0m         \u001b[0;31m# perform the reindex on the axes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3688\u001b[0m         return self._reindex_axes(axes, level, limit, tolerance, method,\n\u001b[0;32m-> 3689\u001b[0;31m                                   fill_value, copy).__finalize__(self)\n\u001b[0m\u001b[1;32m   3690\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3691\u001b[0m     def _reindex_axes(self, axes, level, limit, tolerance, method, fill_value,\n",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_reindex_axes\u001b[0;34m(self, axes, level, limit, tolerance, method, fill_value, copy)\u001b[0m\n\u001b[1;32m   3499\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mindex\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3500\u001b[0m             frame = frame._reindex_index(index, method, copy, level,\n\u001b[0;32m-> 3501\u001b[0;31m                                          fill_value, limit, tolerance)\n\u001b[0m\u001b[1;32m   3502\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3503\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mframe\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_reindex_index\u001b[0;34m(self, new_index, method, copy, level, fill_value, limit, tolerance)\u001b[0m\n\u001b[1;32m   3507\u001b[0m         new_index, indexer = self.index.reindex(new_index, method=method,\n\u001b[1;32m   3508\u001b[0m                                                 \u001b[0mlevel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlevel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlimit\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlimit\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3509\u001b[0;31m                                                 tolerance=tolerance)\n\u001b[0m\u001b[1;32m   3510\u001b[0m         return self._reindex_with_indexers({0: [new_index, indexer]},\n\u001b[1;32m   3511\u001b[0m                                            \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfill_value\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/miniconda3/envs/ML/lib/python3.7/site-packages/pandas/core/indexes/base.py\u001b[0m in \u001b[0;36mreindex\u001b[0;34m(self, target, method, level, limit, tolerance)\u001b[0m\n\u001b[1;32m   3623\u001b[0m                 \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3624\u001b[0m                     \u001b[0;32mif\u001b[0m \u001b[0mmethod\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mlimit\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3625\u001b[0;31m                         raise ValueError(\"cannot reindex a non-unique index \"\n\u001b[0m\u001b[1;32m   3626\u001b[0m                                          \"with a method or limit\")\n\u001b[1;32m   3627\u001b[0m                     \u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmissing\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_indexer_non_unique\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtarget\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mValueError\u001b[0m: cannot reindex a non-unique index with a method or limit"
     ]
    }
   ],
   "source": [
    "data.asfreq(freq=\"30Min\", method=\"bfill\")  # sample the data in hourly manner\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T18:43:29.743295Z",
     "start_time": "2018-11-27T18:43:23.826489Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Scraping 27/11/2018\n",
      "Done\n",
      "Clipping data from 29/10/2018\n",
      "(8640, 1)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "# initialize the model\n",
    "# model = sm.tsa.statespace.SARIMAX(\n",
    "#     data,\n",
    "#     order=(3, 1, 1),\n",
    "#     seasonal_order=(3, 0, 0, 24),\n",
    "#     enforce_stationarity=False,\n",
    "#     enforce_invertibility=False,\n",
    "# )\n",
    "\n",
    "# # fit the model with the data\n",
    "# logger.info(\"Starting model fitting...\")\n",
    "# model = model.fit()\n",
    "\n",
    "# logger.info(\"Model fitting done!!\")\n",
    "# logger.info(model.summary().tables[1])\n",
    "# logger.info(model.summary())\n",
    "\n",
    "# save the model\n",
    "# model.save(\"ARIMA_month_model.pkl\")\n",
    "model = ARIMAResults.load('ARIMA_month_model.pkl')\n",
    "# generate the predictions\n",
    "todays_date = datetime.today().strftime(\"%d/%m/%Y\")\n",
    "tommorows_date = (datetime.today() + timedelta(1)).strftime(\"%d/%m/%Y\")\n",
    "pred = model.get_prediction(\n",
    "    start=pd.to_datetime(\"%s 00:00:00\" % todays_date),\n",
    "    end=pd.to_datetime(\"%s 00:00:00\" % tommorows_date),\n",
    "    dynamic=False,\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T18:43:29.776072Z",
     "start_time": "2018-11-27T18:43:29.752023Z"
    }
   },
   "outputs": [],
   "source": [
    "\n",
    "# save the pridictions in a csv file\n",
    "predictions = pred.predicted_mean\n",
    "predictions = predictions.asfreq(freq=\"5Min\", method=\"bfill\")  # set to 5 min freq\n",
    "date = datetime.today().strftime(format=\"%d-%m-%Y\")\n",
    "predictions.to_csv(\n",
    "    \"predictions/ARIMA/%s.csv\" % date, index_label=\"datetime\", header=[\"load\"]\n",
    ")\n",
    "\n",
    "# error = sqrt(((predictions - numpy.squeeze(todays_date['%s' % date:]))**2).mean())\n",
    "# logger.log(error)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T19:08:01.405385Z",
     "start_time": "2018-11-27T19:08:01.399174Z"
    }
   },
   "outputs": [],
   "source": [
    "\n",
    "predictions = predictions.rolling(window=10).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T19:08:02.399247Z",
     "start_time": "2018-11-27T19:08:02.391362Z"
    }
   },
   "outputs": [],
   "source": [
    "from matplotlib import pyplot\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T19:08:13.025242Z",
     "start_time": "2018-11-27T19:08:13.018059Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "289"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(predictions.values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T19:08:03.052251Z",
     "start_time": "2018-11-27T19:08:02.637136Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f4beead1b70>]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pyplot.plot(predictions.values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T19:16:53.878456Z",
     "start_time": "2018-11-27T19:16:53.702342Z"
    }
   },
   "outputs": [],
   "source": [
    "data = pd.read_csv(\n",
    "    \"lstm_data.csv\",\n",
    "    header=None,\n",
    "    names=[\"datetime\", \"load\"],\n",
    "    index_col=[0],\n",
    "    parse_dates=[0],\n",
    "    infer_datetime_format=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-11-27T19:17:55.365349Z",
     "start_time": "2018-11-27T19:17:54.671484Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f4bee4faa58>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pyplot.rc('figure', figsize=(15.0, 8.0))\n",
    "\n",
    "data['2018-09-27'].plot()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ML",
   "language": "python",
   "name": "ml"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
